package work.mediway.mdm.core.enums;

import cn.hutool.core.util.StrUtil;
import lombok.Getter;
import lombok.Setter;

/**
 * @author zhongyj <1126834403@qq.com><br/>
 * @date 2020/8/31
 */
public enum CodeSystemEnum {

    /**
     * Null
     */
    CT_NULL("CT_NULL"),
    /**
     * 业务域字典表
     */
    CT_BusinessField("CT_BusinessField"),
    /**
     * 科室类型字典 - 手动字典
     */
    CT_DeptCategory("CT_DeptCategory"),
    /**
     * 药学项分类字典表 - 树形
     */
    CT_PHCCategory("CT_PHCCategory"),
    /**
     * 语言表
     */
    CT_Language("CT_Language"),
    /**
     * 组织架构表
     */
    CT_DeptHierarchy("CT_DeptHierarchy"),
    /**
     * 科室表
     */
    CT_Dept("CT_Dept"),
    /**
     * 科室表
     */
    CT_DeptLinkOrg("CT_DeptLinkOrg")


    // =======================================================================================
    ;


    // =======================================================================================

    @Setter
    @Getter
    private String type;

    CodeSystemEnum(String type) {
        this.type = type;
    }

    /**
     * 通过value取枚举
     *
     * @param value String
     * @return CodeSystemEnum
     */
    public static CodeSystemEnum getTypeByValue(String value) {
        if (StrUtil.isBlank(value)) {
            return CT_NULL;
        }
        for (CodeSystemEnum enums : CodeSystemEnum.values()) {
            if (StrUtil.equalsIgnoreCase(value, enums.type)) {
                return enums;
            }
        }
        return CT_NULL;
    }

}
